#
# builds a library containing all MDR routines
# requires OpenWatcom (wmake)
#
# Copyright (C) 2022-2025 Mateusz Viste
#
# http://mateusz.fr/mdr
#

# major version (year of release)
yr = 2026

OBJ = biostick.obj tickwait.obj
OBJ += cout.obj coutrawc.obj coutraws.obj
OBJ += dosdat2u.obj dostim2h.obj
OBJ += dosenv.obj dosgtenv.obj dosexepa.obj dospsp.obj dosselfe.obj
OBJ += dosgtkey.obj dosgtke2.obj doskflsh.obj doskpend.obj
OBJ += dosc_inh.obj dosc_ena.obj dosc_dis.obj
OBJ += dostrunm.obj
OBJ += mda.obj
OBJ += mouse.obj mousecur.obj
OBJ += opl.obj oplnotes.obj oplimf.obj oplimfez.obj opltigen.obj opltimer.obj
OBJ += pcx.obj pcxto8.obj
OBJ += pktdrv.obj
OBJ += rs232.obj
OBJ += sbdigi.obj
OBJ += timer.obj
OBJ += trigint.obj
OBJ += unzip.obj
OBJ += video.obj vidflip.obj vidgetpa.obj vidlodpa.obj vidputsp.obj vidrectf.obj vidrle.obj vidsetpa.obj
OBJ += vidx.obj vidx_pal.obj
OBJ += detvga.obj detega.obj
OBJ += vid12.obj v12ramcp.obj v12sorig.obj
OBJ += wave.obj
OBJ += xms.obj

!ifndef model
all: .symbolic
	@echo --------------------------------
	@echo [  missing memory model spec.  ]
	@echo [                              ]
	@echo [  usage: wmake model=s/m/c/l  ]
	@echo --------------------------------
!endif

LIBNAME = mdr$(model)$(yr).lib
CFLAGS = -0 -wx -we -os -s -bt=dos -i=inc -m$(model)

#
# some explanations:
#
# $@    full name of the target
# $*    target with the extension removed
# $<    list of all dependents
# $?    list of dependents that are younger than the target
#


$LIBNAME: $(OBJ)
	echo.

clean: .symbolic
	# rm -f is an internal wmake command (works also on DOS)
	rm -f *.obj *.lib

.DEFAULT
	wcc $(CFLAGS) $< -fo=$@
	wlib -b $(LIBNAME) +$@

biostick.obj: bios\biostick.c
tickwait.obj: bios\tickwait.c

cout.obj: cout\cout.c
coutrawc.obj: cout\coutrawc.c
coutraws.obj: cout\coutraws.c

detvga.obj: video\detect\vga.c
detega.obj: video\detect\ega.c

dosdat2u.obj: dos\dosdat2u.c
dosenv.obj: dos\dosenv.c
dosgtenv.obj: dos\dosgtenv.c
dosexepa.obj: dos\dosexepa.c
dospsp.obj: dos\dospsp.c
dosselfe.obj: dos\dosselfe.c
dostim2h.obj: dos\dostim2h.c
dostrunm.obj: dos\dostrunm.c

dosgtkey.obj: dos\dosgtkey.c
dosgtke2.obj: dos\dosgtke2.c
doskflsh.obj: dos\doskflsh.c
doskpend.obj: dos\doskpend.c

dosc_inh.obj: dos\dosc_inh.c
dosc_ena.obj: dos\dosc_ena.c
dosc_dis.obj: dos\dosc_dis.c

modex.obj: video\320x240\modex.c

mda.obj: mda\mda.c

mouse.obj: mouse\mouse.c
mousecur.obj: mouse\mousecur.c

opl.obj: opl\opl.c
oplnotes.obj: opl\oplnotes.c
oplimf.obj: opl\oplimf.c
oplimfez.obj: opl\oplimfez.c
opltigen.obj: opl\opltigen.c
opltimer.obj: opl\opltimer.c

pcx.obj: pcx\pcx.c
pcxto8.obj: pcx\pcxto8.c

pktdrv.obj: pktdrv\pktdrv.c

sbdigi.obj: sbdigi\sbdigi.c

rs232.obj: rs232\rs232.c

timer.obj: timer\timer.c

trigint.obj: trigint\trigint.c

unzip.obj: unzip\unzip.c

video.obj: video\320x200\video.c
viddetvg.obj: video\320x200\viddetvg.c
vidflip.obj: video\320x200\vidflip.c
vidgetpa.obj: video\320x200\vidgetpa.c
vidlodpa.obj: video\320x200\vidlodpa.c
vidputsp.obj: video\320x200\vidputsp.c
vidrectf.obj: video\320x200\vidrectf.c
vidrle.obj: video\320x200\vidrle.c
vidsetpa.obj: video\320x200\vidsetpa.c

vidx.obj: video\320x240\vidx.c
vidx_pal.obj: video\320x240\vidx_pal.c

vid12.obj: video\640x480\vid12.c
v12ramcp.obj: video\640x480\v12ramcp.c
v12sorig.obj: video\640x480\v12sorig.c

wave.obj: wave\wave.c

xms.obj: xms\xms.c
